1. Field of the Invention
The present invention relates to a method, system, and program for performing workflow related operations.
2. Description of the Related Art
A workflow program allows businesses and other organizations to define their business operations as a computer model known as a workflow. A workflow defines a series of processes to be performed by users at a client computer. The user activities at the client computers may involve updating an electronic form, reviewing information, etc. After one user in the workflow performs a specified action, the work item or other information is then routed to one or more further nodes where further action may be taken. For instance, an on-line purchase of a product may involve numerous steps, such as receiving the customer order, routing the customer order to the credit department to process the bill and then routing the order to the shipment department to prepare the shipment. Once the shipment is prepared, the product may be shipped and information on the purchase is then transferred to the customer service department to take any further action. Each of these processes may be defined as nodes in a workflow. A workflow program would then route the customer order to the business agents designated to handle the job. For instance, the initial order would be received by the order department and then routed to a person in shipping and billing. Once the bill and package are prepared, a further invoice may be forwarded to shipping. After shipping sends the package, the shipping agent may then enter information into the invoice and forward the electronic invoice to customer service for any follow up action.
A workflow is designed using workflow software, such as the International Business Machines Corporation (IBM) MQSeries** Workflow software product. A process modeler is a person that analyzes the business operations, determines how the information related to the operations is routed electronically to client computers, and then defines a workflow model of the operations. The workflow model may be coded in the FlowMark Definition Language (FDL). The workflow model is then imported into a Runtime program that verifies and translates the workflow model into a process template. An instance of the process template can then be invoked to automates the sequence of events defined by the model. **MQSeries, IBM, and DB2 are registered trademarks of International Business Machines Corp.; Microsoft and Microsoft SQL Server are trademarks of Microsoft Corporation; ORACLE is a trademark of the Oracle Corporation; Java is a trademark of Sun Microsystems, Inc.
Current workflow programs provide an application program interface (API) for client applications to use to interact with the workflow engine and perform workflow related functions and operations. In prior art implementations where the API is implemented in Java**, a Java Native Interface (JNI) wrapper is provided to translate the Java APIs to the native code of the workflow engine. The workflow engine then executes the native code to perform the function specified by the API. In addition, a database is usually provided to store workflow related information and metadata. Java APIs are also provided to access workflow metadata in the workflow database. Thus, the client program would issue Java APIs to interact with the workflow engine and separately call other APIs to interact with the workflow database to access and manipulate workflow metadata. **MQSeries, IBM, and DB2 are registered trademarks of International Business Machines Corp.; Microsoft and Microsoft SQL Server are trademarks of Microsoft Corporation; ORACLE is a trademark of the Oracle Corporation; Java is a trademark of Sun Microsystems, Inc.
The programming of the JNI interface are very difficult and cumbersome to code and debug. Further, the JNI interface developed for one vendor workflow engine is not reusable because it is closely coupled with the specific workflow engine implementation and cannot be reused with other vendor workflow engine implementations. In fact, the software developer would have to recompile every JNI interface based on the compiler and client/server architecture used for different vendor workflow engines.
For these reasons, there is a need in the art to provide improved designs of workflow programs.